package com.whminwei.edu.api.dc.client;

import com.whminwei.common.exception.ServiceException;
import com.whminwei.common.feign.decoder.FullHttpRspnConfig;
import com.whminwei.common.http.rspn.FullHttpResponse;
import com.whminwei.edu.api.dc.dto.feq.CommonFeq;
import com.whminwei.edu.api.dc.dto.fspn.base.DcMajorPostFspn;
import com.whminwei.edu.api.dc.dto.fspn.school.DcIntlOrgFspn;
import com.whminwei.edu.api.dc.dto.fspn.tch_base.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;

/**
 * @author wangy
 * @since 2024/8/12
 */
@FeignClient(name = "xzzg-pt-tch-base-service", contextId = "datacenter-tch-base", configuration = FullHttpRspnConfig.class)
public interface DcTchBaseClient {

    @PostMapping("/datacenter/getTextBookList")
    FullHttpResponse<DcTextBookFspn> getTextBookList() throws ServiceException;

    /**
     * 获取教师信息
     *
     * @return com.whminwei.common.http.rspn.FullHttpResponse<com.whminwei.edu.api.dc.dto.fspn.tch_base.DcTeacherFspn>
     * @author zhangjq
     * @since 2024-08-22
     */
    @PostMapping("/datacenter/getTeacherInfo")
    FullHttpResponse<DcTeacherFspn> getTeacherInfo(CommonFeq feq);

    /**
     * 获取教研室信息
     *
     * @return com.whminwei.common.http.rspn.FullHttpResponse<com.whminwei.edu.api.dc.dto.fspn.school.DcIntlOrgFspn>
     * @author zhangjq
     * @since 2024-10-10
     */
    @PostMapping("/datacenter/getTchResOfcList")
    FullHttpResponse<DcIntlOrgFspn> getTchResOfcList();

    /**
     * 获取专业技术职务信息
     *
     * @return com.whminwei.common.http.rspn.FullHttpResponse<com.whminwei.edu.api.dc.dto.fspn.base.DcMajorPostFspn>
     * @author zhangjq
     * @since 2024-08-26
     */
    @PostMapping("/datacenter/getMajorPostInfo")
    FullHttpResponse<DcMajorPostFspn> getMajorPostInfo();

    /**
     * 获取学科信息
     *
     * @return com.whminwei.common.http.rspn.FullHttpResponse<com.whminwei.edu.api.dc.dto.fspn.tch_base.DcDisciplineFspn>
     * @author zhangjq
     * @since 2024-10-21
     */
    @PostMapping("/datacenter/getDisciplineList")
    FullHttpResponse<DcDisciplineFspn> getDisciplineList();

    /**
     * 获取课程信息
     *
     * @return com.whminwei.common.http.rspn.FullHttpResponse<com.whminwei.edu.api.dc.dto.fspn.tch_base.DcCourseFspn>
     * @author zhangjq
     * @since 2024-10-21
     */
    @PostMapping("/datacenter/getCourseList")
    FullHttpResponse<DcCourseFspn> getCourseList();

    /**
     * 获取课程实践信息
     *
     * @return com.whminwei.common.http.rspn.FullHttpResponse<com.whminwei.edu.api.dc.dto.fspn.tch_base.DcCoursePracticFspn>
     * @author zhangjq
     * @since 2024-10-24
     */
    @PostMapping("/datacenter/getCoursePracticList")
    FullHttpResponse<DcCoursePracticFspn> getCoursePracticList(CommonFeq feq);

    /**
     * 获取教学进程安排信息
     *
     * @return com.whminwei.common.http.rspn.FullHttpResponse<com.whminwei.edu.api.dc.dto.fspn.tch_base.DcEduSchemeFspn>
     * @author zhangjq
     * @since 2024-10-25
     */
    @PostMapping("/datacenter/getEduSchemeInfo")
    FullHttpResponse<DcEduSchemeFspn> getEduSchemeInfo(CommonFeq feq);
}
